package config

import (
	"time"
)

// Config 扫描器配置
type Config struct {
	Target   string        // 目标URL或文件路径
	PocDir   string        // POC目录
	Threads  int           // 并发线程数
	Timeout  int           // 超时时间(秒)
	Output   string        // 输出文件路径
	Verbose  bool          // 详细输出
	ProxyURL string        // 代理URL
}

// GetTimeout 获取超时时间
func (c *Config) GetTimeout() time.Duration {
	return time.Duration(c.Timeout) * time.Second
}

// Validate 验证配置
func (c *Config) Validate() error {
	if c.Target == "" {
		return ErrEmptyTarget
	}
	if c.Threads <= 0 {
		c.Threads = 10
	}
	if c.Timeout <= 0 {
		c.Timeout = 10
	}
	if c.PocDir == "" {
		c.PocDir = "./pocs"
	}
	return nil
}